模板引擎简介

1. 什么是模板引擎?

模板引擎是一种工具,用于将数据和模板结合起来生成最终的HTML文档。模板引擎允许开发者将页面的结构(HTML)和内容(数据)分离,从而提高代码的可维护性和可重用性。

1.1 模板引擎的作用

  • 分离关注点:将数据和视图分离,使代码更清晰。
  • 提高可维护性:修改模板或数据时,不会影响到另一部分。
  • 代码复用:可以在多个地方使用相同的模板。

2. 常见的模板引擎

2.1 EJS (Embedded JavaScript)

EJS 是一种简单的模板语言,允许你在 HTML 中嵌入 JavaScript 代码。

<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1><%= heading %></h1>
    <ul>
        <% items.forEach(function(item) { %>
            <li><%= item %></li>
        <% }); %>
    </ul>
</body>
</html>

2.2 Handlebars

Handlebars 是一种语法简洁的模板引擎,支持条件语句和循环。

<html>
<head>
    <title>{{title}}</title>
</head>
<body>
    <h1>{{heading}}</h1>
    <ul>
        {{#each items}}
            <li>{{this}}</li>
        {{/each}}
    </ul>
</body>
</html>

2.3 Pug (原 Jade)

Pug 是一种缩进敏感的模板引擎,语法简洁,适合快速编写 HTML。

html
  head
    title= title
  body
    h1= heading
    ul
      each item in items
        li= item

3. 模板引擎的基本语法

3.1 变量插入

在模板中插入变量是最基本的操作。

<p>Hello, <%= name %>!</p>

3.2 条件语句

根据条件显示不同的内容。

<% if (isAdmin) { %>
    <p>Welcome, Admin!</p>
<% } else { %>
    <p>Welcome, User!</p>
<% } %>

3.3 循环

遍历数组或对象,生成多个元素。

<ul>
    <% items.forEach(function(item) { %>
        <li><%= item %></li>
    <% }); %>
</ul>

4. 实践练习

4.1 创建一个简单的模板

使用 EJS 创建一个简单的模板,显示用户列表。

<!-- users.ejs -->
<html>
<head>
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>
    <ul>
        <% users.forEach(function(user) { %>
            <li><%= user.name %> - <%= user.email %></li>
        <% }); %>
    </ul>
</body>
</html>

4.2 渲染模板

在服务器端使用 Node.js 和 Express 渲染模板。

const express = require('express');
const app = express();

app.set('view engine', 'ejs');

const users = [
    { name: 'Alice', email: '[email protected]' },
    { name: 'Bob', email: '[email protected]' },
];

app.get('/users', (req, res) => {
    res.render('users', { users: users });
});

app.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

5. 总结

模板引擎是现代 Web 开发中不可或缺的工具,它帮助我们将数据和视图分离,提高了代码的可维护性和可重用性。通过本教程,你应该已经掌握了模板引擎的基本概念、常见类型、基本语法以及如何使用它们来创建和渲染模板。

6. 进一步学习

  • 深入学习 EJS:探索 EJS 的更多高级功能,如自定义分隔符、局部模板等。
  • 尝试其他模板引擎:如 Handlebars、Pug 等,了解它们的独特之处。
  • 结合前端框架:将模板引擎与 React、Vue 等前端框架结合使用,提升开发效率。

通过不断实践和学习,你将能够更加熟练地使用模板引擎,提升你的 Web 开发技能。